package com.tedu.API.IO;

import java.io.*;
import java.util.Scanner;

/**
 * 练习：笔记本程序
 * 需求:程序开始后，要求用户输入文件名【控制台输入】,假设a.txt
 *      ，针对文件进行读写操作，用户一行行输入文本，保存a.txt中
 *      用户可以一直输入，直到用户输入“退出”或者“exit”程序结束
 *      保存在a.txt 生成在API项目下
 */
public class Note {
    //主方法直接写文件名  相对路径a.txt 根级目录
    public static void main(String[] args) throws IOException {
        //控制台输入文件名
        Scanner input=new Scanner(System.in);
        System.out.println("请输入文件名");
        String fileName=input.nextLine();
        //2.控制台输入文件名---写--通过输出流---写出流  ./API/a.txt
        FileOutputStream fos=
                new FileOutputStream("API"+File.separator+fileName);
        //高级流转换流：指定编码集--缓冲流 ---字符输出流
        OutputStreamWriter osw=new OutputStreamWriter(fos,"utf8");
        BufferedWriter bw=new BufferedWriter(osw);
        PrintWriter pw=new PrintWriter(bw);
        //控制台输入文本内容---对每行文本进行写出
        System.out.println("请输入内容[exit/退出]");
        //3.1一直输入，直到用户输入 exit/退出
        String line=null;   //定义死循环外面--1，赋值2.减少内存的开销
        while (true){
            line=input.nextLine(); //从控制台获取文本
            //写出line文本
            pw.println(line);
            if (line.equals("exit")||line.equals("退出")){
                break;
            }
        }
        System.out.println("拜拜");
        pw.close();
        //关闭高级流---缓冲字符流：【缓冲区】关闭流---调用flush
        //针对传输文本
    }
}
